import java.util.Stack;

public class ImplementQueueStacks {
    Stack<Integer> qu1;
    Stack<Integer> qu2;

    public ImplementQueueStacks() {
        qu1 = new Stack<>();
        qu2 = new Stack<>();
    }

    public void push(int x) {
        qu1.push(x);
    }

    public int pop() {
        if (qu2.isEmpty()) {
            // 如果 qu2 空了, 那就去 qu1 里面取
            pour();
        }
        return qu2.pop();
    }

    public int peek() {
        if (qu2.isEmpty()) {
            pour();
        }
        return qu2.peek();
    }

    public boolean empty() {
        return qu1.isEmpty() && qu2.isEmpty();
    }

    // 将 qu1 里面的元素全部放到 qu2 中
    public void pour() {
        while (!qu1.isEmpty()) {
            qu2.push(qu1.pop());
        }
    }
}
